package chemtools_logica.LN.SFBean;

import chemtools_logica.BDL.IR.BDL_SFEventoRemote;
import chemtools_logica.BDL.SFBean.BDL_SFEventoBean;

import chemtools_logica.Beans.AlmacenBean;
import chemtools_logica.Beans.BancoBean;
import chemtools_logica.Beans.EventoBean;
import chemtools_logica.Beans.EventoxusuarioBean;

import chemtools_logica.Entidades.Almacen;

import chemtools_logica.Entidades.Banco;
import chemtools_logica.Entidades.Evento;

import chemtools_logica.LN.IL.LN_SFEventoLocal;
import chemtools_logica.LN.IR.LN_SFEventoRemote;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;

import javax.ejb.EJB;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless(name = "LN_SFEvento", mappedName = "map-LN_SFEvento")
public class LN_SFEventoBean implements LN_SFEventoRemote, LN_SFEventoLocal {
    @Resource
    SessionContext sessionContext;
    @PersistenceContext(unitName = "Chemtools_Logica")
    private EntityManager em;
    @EJB
    BDL_SFEventoRemote bDL_SFEventoRemote;

    public void addEvento(EventoBean eventoBean) {
        Evento entidadEvento = new Evento();
        entidadEvento = this.convertBeanToEntity(eventoBean, 1);
        bDL_SFEventoRemote.mergeEvento(entidadEvento);
    }

    public Evento convertBeanToEntity(EventoBean bean, int opc) {
        Evento entidad = new Evento();
        if (opc == 0) {
            entidad.setIdEvento(bean.getIdEvento());
        }

        entidad.setDescripcion(bean.getDescripcion());
        entidad.setEstado(bean.getEstado());
        return entidad;
    }

    public List<EventoBean> getAlleventosActivos() {

        List<Evento> listaEntidad = bDL_SFEventoRemote.getEventosUsuario();
        List<EventoBean> listaBean = new ArrayList<EventoBean>();

        for (Evento entidad : listaEntidad) {
            EventoBean bean = convertEntityToBean(entidad);
            listaBean.add(bean);
        }
        return listaBean;
    }

    public EventoBean convertEntityToBean(Evento entidad) {
        EventoBean bean = new EventoBean();

        bean.setIdEvento(entidad.getIdEvento());
        bean.setEstado(entidad.getEstado());
        bean.setDescripcion(entidad.getDescripcion());

        return bean;
    }
    
    public boolean verificarNombreDupli(String nombre){
        boolean exi = bDL_SFEventoRemote.existeNombreEvento(nombre);
        return exi;
    }

}
